package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * task对象 task_assignment_tracking
 * 
 * @author alex
 * @date 2025-07-17
 */
public class TaskAssignmentTracking extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 任务编号 */
    @Excel(name = "任务编号")
    private String taskCode;

    /** 任务标题 */
    @Excel(name = "任务标题")
    private String taskTitle;

    /** 任务描述 */
    @Excel(name = "任务描述")
    private String taskDescription;

    /** 问题附件URL（多个用逗号分隔） */
    @Excel(name = "问题附件URL", readConverterExp = "多=个用逗号分隔")
    private String questionUrl;

    /** 任务类型 */
    @Excel(name = "任务类型")
    private Long taskType;

    /** 任务优先级 */
    @Excel(name = "任务优先级")
    private Long priority;

    /** 创建人ID（巡检人员或管理员） */
    @Excel(name = "创建人ID", readConverterExp = "巡=检人员或管理员")
    private Long creatorId;

    /** 创建人姓名 */
    @Excel(name = "创建人姓名")
    private String creatorName;

    /** 被分配人ID（包区人员） */
    @Excel(name = "被分配人ID", readConverterExp = "包=区人员")
    private Long assigneeId;

    /** 被分配人姓名 */
    @Excel(name = "被分配人姓名")
    private String assigneeName;

    /** 包区ID */
    @Excel(name = "包区ID")
    private Long deptId;

    /** 任务状态（关联字典表） */
    @Excel(name = "任务状态", readConverterExp = "关=联字典表")
    private Long taskStatus;

    /** 分配时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分配时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date assignedAt;

    /** 开始处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startedAt;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completedAt;

    /** 处理结果描述 */
    @Excel(name = "处理结果描述")
    private String resultDescription;

    /** 附件URL（多个用逗号分隔） */
    @Excel(name = "附件URL", readConverterExp = "多=个用逗号分隔")
    private String attachmentUrls;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setTaskCode(String taskCode) 
    {
        this.taskCode = taskCode;
    }

    public String getTaskCode() 
    {
        return taskCode;
    }

    public void setTaskTitle(String taskTitle) 
    {
        this.taskTitle = taskTitle;
    }

    public String getTaskTitle() 
    {
        return taskTitle;
    }

    public void setTaskDescription(String taskDescription) 
    {
        this.taskDescription = taskDescription;
    }

    public String getTaskDescription() 
    {
        return taskDescription;
    }

    public void setQuestionUrl(String questionUrl) 
    {
        this.questionUrl = questionUrl;
    }

    public String getQuestionUrl() 
    {
        return questionUrl;
    }

    public void setTaskType(Long taskType) 
    {
        this.taskType = taskType;
    }

    public Long getTaskType() 
    {
        return taskType;
    }

    public void setPriority(Long priority) 
    {
        this.priority = priority;
    }

    public Long getPriority() 
    {
        return priority;
    }

    public void setCreatorId(Long creatorId) 
    {
        this.creatorId = creatorId;
    }

    public Long getCreatorId() 
    {
        return creatorId;
    }

    public void setCreatorName(String creatorName) 
    {
        this.creatorName = creatorName;
    }

    public String getCreatorName() 
    {
        return creatorName;
    }

    public void setAssigneeId(Long assigneeId) 
    {
        this.assigneeId = assigneeId;
    }

    public Long getAssigneeId() 
    {
        return assigneeId;
    }

    public void setAssigneeName(String assigneeName) 
    {
        this.assigneeName = assigneeName;
    }

    public String getAssigneeName() 
    {
        return assigneeName;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setTaskStatus(Long taskStatus) 
    {
        this.taskStatus = taskStatus;
    }

    public Long getTaskStatus() 
    {
        return taskStatus;
    }

    public void setAssignedAt(Date assignedAt) 
    {
        this.assignedAt = assignedAt;
    }

    public Date getAssignedAt() 
    {
        return assignedAt;
    }

    public void setStartedAt(Date startedAt) 
    {
        this.startedAt = startedAt;
    }

    public Date getStartedAt() 
    {
        return startedAt;
    }

    public void setCompletedAt(Date completedAt) 
    {
        this.completedAt = completedAt;
    }

    public Date getCompletedAt() 
    {
        return completedAt;
    }

    public void setResultDescription(String resultDescription) 
    {
        this.resultDescription = resultDescription;
    }

    public String getResultDescription() 
    {
        return resultDescription;
    }

    public void setAttachmentUrls(String attachmentUrls) 
    {
        this.attachmentUrls = attachmentUrls;
    }

    public String getAttachmentUrls() 
    {
        return attachmentUrls;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskCode", getTaskCode())
            .append("taskTitle", getTaskTitle())
            .append("taskDescription", getTaskDescription())
            .append("questionUrl", getQuestionUrl())
            .append("taskType", getTaskType())
            .append("priority", getPriority())
            .append("creatorId", getCreatorId())
            .append("creatorName", getCreatorName())
            .append("assigneeId", getAssigneeId())
            .append("assigneeName", getAssigneeName())
            .append("deptId", getDeptId())
            .append("taskStatus", getTaskStatus())
            .append("assignedAt", getAssignedAt())
            .append("startedAt", getStartedAt())
            .append("completedAt", getCompletedAt())
            .append("resultDescription", getResultDescription())
            .append("attachmentUrls", getAttachmentUrls())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
